Many conventional word processors represent a formatted document using a tree of style and content object nodes. This kind of structure can cause such a system to have duplicate style objects and also to have complex and inefficient manipulation involving merging and splitting of style and content objects. For example, such a document may have as many bold style objects as the number of bold text components it embodies. Also, when some editing operation results in two consecutive similar styles, the style objects and their associated content will typically be merged into one style object, and the reverse will happen when a paragraph is split into two paragraphs. This kind of style and content object manipulation can become even more complex and error prone from the implementation viewpoint during copy/paste and undo-redo operations. In particular, when document content is moved around within the document, the style and content objects may need to be moved within the tree structure, and incorporated into a new location in such a structure. Likewise, the saving of information needed to complete undo operations can be difficult in terms of matching the undo information to the tree structure.